`timescale 1ns/1ps
`default_nettype none
//文件名：rtl/pc.v
//作用：PC
module pc (
    input  wire        clk,
    input  wire        rstn,     // active-low, synchronous
    input  wire        en,      // =0 时保持不变（用于插泡时冻结IF）
    input  wire        pc_src,     // 1=采用 pc_target
    input  wire [31:0] pc_target,  // 重定向目标
    output reg  [31:0] pc_q
);
    wire [31:0] pc_plus4 = pc_q + 32'd4;
    wire [31:0] next_pc  = pc_src ? pc_target : pc_plus4;

    always @(posedge clk) begin
        if (!rstn) pc_q <= 32'h0000_0000;
        else if (en)     pc_q <= next_pc;
    end
endmodule

